//Created by Dale Freya

#ifndef LEVEL_H
#define LEVEL_H

#include "IAgent.h"
#include <Clarity/ForwardDeclarations.h>
#include <Clarity/Math/AARect.h>
#include <vector>

using namespace Clarity;
using namespace AIHarness;
using namespace std;

class Lines;

class Level
{
public:
   Level(const AARect &bounds, const AgentInitData &agentInitData);

   void AddWall(const AARect &rect);

   bool Intersects(const Vector2 &position) const;
   bool Intersects(const Circle &circle) const;

   bool IsPathBetween(const Vector2 &position1, const Vector2 &position2, float radius) const;
   bool IsLineOfSightClear(const Ray2 &ray, float maxDistance, float &cost) const;

private:
   AARect m_bounds;
   Lines* m_Line;
   const AgentInitData m_agentInitData;
   vector<AARect> m_wall;

};

#endif
